package com.wicket.okrapp.biz.service.dto.req;
import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import javax.validation.constraints.NotNull;
import lombok.Data;
    
    
    /**
     * @desc ImplementBizBusinessFieldPushMemoryReqDto
     * @使用场景
     */
    @Data
    public class ImplementBizBusinessFieldPushMemoryReqDto extends BaseDto  implements Serializable {
      
    /**
     * 汇报管理模式 PROGRESS_MODEL:进度模式 DEGREE_MODEL:达成度模式 MIXED_MODEL:混合模式
     */
    @NotNull(message = "汇报管理模式不能为空")
@ApiModelProperty("汇报管理模式")
    private String	 reportManagementModel;

    /**
     * 数量型指标当无实际值标记 TRUE:是 FALSE:否
     */
    @NotNull(message = "数量型指标当无实际值标记不能为空")
@ApiModelProperty("数量型指标当无实际值标记")
    private String	 quantityObjectiveNoValue;

    /**
     * 无实际值指标是否开启进度汇报 TRUE:是 FALSE:否
     */
    @NotNull(message = "无实际值指标是否开启进度汇报不能为空")
@ApiModelProperty("无实际值指标是否开启进度汇报")
    private String	 noPracticalValueObjIsProgReport;

    /**
     * 汇报类型 ARTIFICIAL_REPORT:人工汇报 SEMIAUTOMATIC_REPORT:半自动汇报 AUTO_REPORT:全自动汇报
     */
    @NotNull(message = "汇报类型不能为空")
@ApiModelProperty("汇报类型")
    private String	 reportType;

    /**
     * 是否开启自定义汇报 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否开启自定义汇报不能为空")
@ApiModelProperty("是否开启自定义汇报")
    private String	 isOpenCustomReport;

    /**
     * 关联目标内容类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标
     */
    @NotNull(message = "关联目标内容类型编码不能为空")
@ApiModelProperty("关联目标内容类型编码")
    private String	 targetCycleContentTypeCode;

    /**
     * 关联目标内容ID 
     */
    @NotNull(message = "关联目标内容ID不能为空")
@ApiModelProperty("关联目标内容ID")
    private String	 targetCycleContentId;

    /**
     * 周期ID 
     */
    @NotNull(message = "周期ID不能为空")
@ApiModelProperty("周期ID")
    private String	 cycleId;

    /**
     * 周期类型标识 FIVE_YEAR:五年 THREE_YEAR:三年 YEAR:年 HALF_YEAR:半年 QUARTER:季度 DOUBLE_MOONS:双月 MONTH:月 SCHOOL_YEAR:学年 IRREGULAR_CYCLE:不规则周期
     */
    @NotNull(message = "周期类型标识不能为空")
@ApiModelProperty("周期类型标识")
    private String	 cycleTypeCode;

    /**
     * 周期开始时间 
     */
    @NotNull(message = "周期开始时间不能为空")
@ApiModelProperty("周期开始时间")
    private Date	 cycleStartTime;

    /**
     * 周期结束时间 
     */
    @NotNull(message = "周期结束时间不能为空")
@ApiModelProperty("周期结束时间")
    private Date	 cycleEndTime;

    /**
     * 冗余评价模板ID 
     */
    @NotNull(message = "冗余评价模板ID不能为空")
@ApiModelProperty("冗余评价模板ID")
    private String	 evaluationTemplateId;

    /**
     * 冗余目标ID 
     */
    @NotNull(message = "冗余目标ID不能为空")
@ApiModelProperty("冗余目标ID")
    private String	 targetId;

    /**
     * 是否开启主观评分 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否开启主观评分不能为空")
@ApiModelProperty("是否开启主观评分")
    private String	 isSubjectiveScoring;

    /**
     * 冗余指标业务类型 NUMBER_GROWTH:数量增长型 NUMBER_DECLINE:数量降幅型 PERCENTAGE_GROWTH:百分比增长型 PERCENTAGE_DECLINE:百分比降幅型 PROGRESS:进度型 RATIO_GROWTH:比率增长型 RATIO_DECLINE:比率降幅型 SUBJECTIVE_QUALITATIVE:主观定性
     */
    @ApiModelProperty("冗余指标业务类型")
    private String	 targetValueType;

    /**
     * 建设任务汇报对象设置项编码 PRIMARY_TASK:一级建设任务 SECONDARY_TASK:二级建设任务 PRIMARY_OBSERVATION_POINT:二级以下建设任务或一级观测点 SECONDARY_OBSERVATION_POINT:二级观测点 OTHER_OBSERVATION_POINT:二级以下观测点
     */
    @ApiModelProperty("建设任务汇报对象设置项编码")
    private String	 reportObjectSetCode;

    /**
     * 主观评分满分值 
     */
    @NotNull(message = "主观评分满分值不能为空")
@ApiModelProperty("主观评分满分值")
    private Long	 subjectiveRatingTotalValue;

    /**
     * 主观得分小数点规则 
     */
    @NotNull(message = "主观得分小数点规则不能为空")
@ApiModelProperty("主观得分小数点规则")
    private Long	 subjectiveScorePoint;

    /**
     * 达成度小数点规则 
     */
    @NotNull(message = "达成度小数点规则不能为空")
@ApiModelProperty("达成度小数点规则")
    private Long	 degreeDecimalPoint;

    /**
     * 增降幅小数点规则 
     */
    @NotNull(message = "增降幅小数点规则不能为空")
@ApiModelProperty("增降幅小数点规则")
    private Long	 increasesDropDecimalPoint;

    /**
     * 小数最后一位规则 MALING:尾数抹零 ROUNDED:尾数四舍五入
     */
    @NotNull(message = "小数最后一位规则不能为空")
@ApiModelProperty("小数最后一位规则")
    private String	 decimalDigitsLastRules;

    /**
     * 主观得分计算规则 SUMMARIZE:取子周期累计相加值 LAST_OF_SUBPERIOD:取子周期最后值 MAX_OF_SUBPERIOD:取子周期最高值 MIN_OF_SUBPERIOD:取子周期最低值 AVG_OF_SUBPERIOD:取子周期平均值 SPEC_AVG_OF_SUBPERIOD:去除最大最小取子周期平均值
     */
    @NotNull(message = "主观得分计算规则不能为空")
@ApiModelProperty("主观得分计算规则")
    private String	 subjectiveScoreCountRule;

    /**
     * 当前主观得分权重 
     */
    @NotNull(message = "当前主观得分权重不能为空")
@ApiModelProperty("当前主观得分权重")
    private String	 curSubjectiveScoreWeight;

    /**
     * 过程主观得分权重 
     */
    @NotNull(message = "过程主观得分权重不能为空")
@ApiModelProperty("过程主观得分权重")
    private String	 processSubjectiveScoreWeight;

    /**
     * 目标是否向下分工相同 TRUE:是 FALSE:否
     */
    @NotNull(message = "目标是否向下分工相同不能为空")
@ApiModelProperty("目标是否向下分工相同")
    private String	 targetDivisionSame;

    /**
     * 层级 
     */
    @NotNull(message = "层级不能为空")
@ApiModelProperty("层级")
    private Long	 levelNumber;

    /**
     * 末级周期类型 HALF_YEAR:半年 QUARTER:季度 DOUBLE_MONTHS:双月 MONTH:月 DOUBLE_WEEKS:双周 WEEK:周
     */
    @NotNull(message = "末级周期类型不能为空")
@ApiModelProperty("末级周期类型")
    private String	 lastCycleType;

    /**
     * 被评对象目标周期ID 
     */
    @NotNull(message = "被评对象目标周期ID不能为空")
@ApiModelProperty("被评对象目标周期ID")
    private String	 evaObjTargetCycleId;

    /**
     * 子周期周期类型 
     */
    @NotNull(message = "子周期周期类型不能为空")
@ApiModelProperty("子周期周期类型")
    private String	 subcycleType;
/**
     * 小数点规则 
     */
    @NotNull(message = "小数点规则不能为空")
@ApiModelProperty("小数点规则")
    private Long	 decimalPointRules;
/**
     * 评价模板数据参数
     */
    @NotNull(message = "评价模板数据参数不能为空")
@ApiModelProperty("评价模板数据参数")
    private String	 schemeDataPara;

      

    }
   